// vuex文件
import Vue from "vue";
import Vuex from 'vuex';
// 声明使用vue插件
Vue.use(Vuex);

const state= {
    num:0,
    name:'houzi'
};
const mutations = {
    add(){
        state.num += 1;
    },
    // 打算 count是state  xxx是组件传递过来的值
    // mutations中方法的第一个参数永远是state  
    // 第二个参数是传递过来的值 尽量设计为一个对象，因为一个对象当中可以存储多个数据
    /* dis(state,count){
        console.log(state);
        console.log(count);
        // console.log(shu);
       
    } */
    dis(state,{count}){
        console.log(state);
        console.log(count);
        state.num -= count;
    }
};
const actions = {
    oddAdd({state,commit}){
        // 参数是一个对象 {state, commit}
        // console.log(canshu);
        console.log('actions 中的 oddAdd');
        if(Math.abs(state.num) % 2 == 1 ){
            commit('add');
        }
    },
    evenDis({state,commit}){
        if(state.num % 2 == 0){
            commit('dis',{count:10})
        }
    }
};

const getters = {
    evenOrOdd(){
        return state.num % 2 == 0?"偶数":"奇数"
    }
}

export default new Vuex.Store({
    state,
    mutations,
    actions,
    getters
})


